// ============================== 导出依赖 ============================== //

const comResp = { code: 100, msg: '成功' }

// ============================== 导出客户端 ============================== //

export default {
  // —————————————————————————————— 结构树响应体 —————————————————————————————— //

  treeResp: (contentList, dataKey = 'contentList') => ({
    toObject: () => ({ comResp, comQuery: {}, [dataKey]: contentList }),
  }),

  // —————————————————————————————— 列表响应体 —————————————————————————————— //

  listResp: (totalCount, contentList, dataKey = 'contentList') => ({
    toObject: () => ({ comResp, comQuery: { totalCount }, [dataKey]: contentList }),
  }),

  // —————————————————————————————— 单项响应体 —————————————————————————————— //

  oneResp: (content, dataKey = 'content') => ({
    toObject: () => ({ comResp, [dataKey]: content }),
  }),

  // —————————————————————————————— 提交响应体 —————————————————————————————— //

  submitResp: () => ({
    toObject: () => ({ comResp }),
  }),

  // —————————————————————————————— 失败响应体 —————————————————————————————— //

  errorResp: (code, msg) => ({
    toObject: () => ({ comResp: { code, msg } }),
  }),

  // —————————————————————————————— 异步返回 —————————————————————————————— //

  promiseReturn: (resp) => {
    return new Promise((resolve) => {
      setTimeout(() => resolve(resp), random())
    })
  },
}

// ============================== 内部变量 ============================== //

/**
 * 随机毫秒数 (100 - 1100)
 */
const random = () => Number(`${Math.random()}`.slice(3, 6)) + 100
